#include <../lib/igloo/igloo.h>
#include "../../HashExtensible/Tabla.h"

using namespace igloo;
Context(TestTabla)
{
	Configuracion* config;
	Tabla* tabla;
	string path;

	void SetUp() {
		config = Configuracion::getInstancia("archivoConfiguracionTestHash.txt");
		path = config->getPathHashExtensible() + "tablaHash" + "Indice" + ".bin";

		tabla = new Tabla(path);
	}

	void TearDown() {
		remove(path.c_str());
		delete tabla;
		delete config;
	}

//	Spec(esNueva) {
//		bool nueva = tabla->esNueva();
//		Assert::That(nueva);
//	}
//
//	Spec(esNuevaConTamanioUno) {
//		int tamanio = tabla->getTamanio();
//		Assert::That(tamanio, Is().EqualTo(1));
//	}
//
//	Spec(getElementoEnPosicion) {
//		int elemento = tabla->getElementoEn(0);
//		Assert::That(elemento, Is().EqualTo(0));
//	}
//
//	Spec(setElementoEnPosicion) {
//		tabla->setElementoEn(0, 4);
//		Assert::That(tabla->getElementoEn(0), Is().EqualTo(4));
//	}

	Spec(duplicar) {
		tabla->duplicar();
		Assert::That(tabla->getTamanio(), Is().EqualTo(2));
		delete tabla;
		tabla = new Tabla(path);
		bool nueva = tabla->esNueva();
		Assert::That(nueva, Is().EqualTo(false));
		Assert::That(tabla->getTamanio(), Is().EqualTo(2));

	}

//	Spec(truncar) {
//		tabla->duplicar();
//		tabla->truncar();
//		Assert::That(tabla->getTamanio(), Is().EqualTo(1));
//	}
//
//	Spec(actualizar) {
//		tabla->duplicar();
//		tabla->duplicar();
//		tabla->duplicar();
//		Assert::That(tabla->getTamanio(), Is().EqualTo(8));
//
//		tabla->setElementoEn(3,5);
//		tabla->setElementoEn(6,8);
//
//		tabla->actualizar(0,2,6);
//
//		Assert::That(tabla->getElementoEn(0), Is().EqualTo(6));
//		Assert::That(tabla->getElementoEn(1), Is().EqualTo(0));
//		Assert::That(tabla->getElementoEn(2), Is().EqualTo(6));
//		Assert::That(tabla->getElementoEn(3), Is().EqualTo(5));
//		Assert::That(tabla->getElementoEn(4), Is().EqualTo(6));
//		Assert::That(tabla->getElementoEn(5), Is().EqualTo(0));
//		Assert::That(tabla->getElementoEn(6), Is().EqualTo(6));
//		Assert::That(tabla->getElementoEn(7), Is().EqualTo(0));
//	}

};

